package com.example.springbootvue.common;

/**
 * API 接口文档
 * 该类用于记录系统所有 API 接口的描述和用法
 */
public class ApiDocumentation {

    /**
     * 认证相关接口
     * 
     * 1. 用户注册
     * URL: POST /api/auth/register
     * 描述: 注册新用户
     * 请求体:
     * {
     * "username": "用户名",
     * "password": "密码",
     * "email": "邮箱",
     * "phone": "电话号码"（可选）
     * }
     * 响应:
     * 成功: HTTP 201 - {"message": "用户注册成功！"}
     * 失败: HTTP 400 - {"message": "用户名已被使用！"} 或 {"message": "邮箱已被使用！"}
     * 
     * 2. 用户登录
     * URL: POST /api/auth/login
     * 描述: 用户登录并获取 JWT 令牌
     * 请求体:
     * {
     * "usernameOrEmail": "用户名或邮箱",
     * "password": "密码"
     * }
     * 响应:
     * 成功: HTTP 200 - {"accessToken": "JWT令牌", "tokenType": "Bearer"}
     * 失败: HTTP 401 - {"message": "用户名或密码错误"}
     * 
     * 3. 检查用户名可用性
     * URL: GET /api/auth/checkUsernameAvailability?username=测试用户名
     * 描述: 检查用户名是否可用
     * 响应: {"available": true/false}
     * 
     * 4. 检查邮箱可用性
     * URL: GET /api/auth/checkEmailAvailability?email=test@example.com
     * 描述: 检查邮箱是否可用
     * 响应: {"available": true/false}
     */
    public static final String AUTH_API = "/api/auth";

    /**
     * 用户相关接口
     * 
     * 1. 获取当前用户信息
     * URL: GET /api/user/me
     * 描述: 获取已登录用户的个人信息
     * 请求头: Authorization: Bearer {JWT令牌}
     * 响应:
     * 成功: HTTP 200 - 用户信息对象 (不包含密码)
     * 失败: HTTP 401 - 未授权
     * 
     * 2. 更新用户信息
     * URL: PUT /api/user/me
     * 描述: 更新已登录用户的个人信息
     * 请求头: Authorization: Bearer {JWT令牌}
     * 请求体:
     * {
     * "email": "新邮箱",
     * "phone": "新电话号码"
     * }
     * 响应:
     * 成功: HTTP 200 - 更新后的用户信息对象 (不包含密码)
     * 失败: HTTP 400 - {"message": "邮箱已被使用"}
     * 失败: HTTP 401 - 未授权
     * 
     * 3. 修改密码
     * URL: POST /api/user/changePassword
     * 描述: 修改已登录用户的密码
     * 请求头: Authorization: Bearer {JWT令牌}
     * 请求体:
     * {
     * "oldPassword": "旧密码",
     * "newPassword": "新密码"
     * }
     * 响应:
     * 成功: HTTP 200 - {"message": "密码修改成功"}
     * 失败: HTTP 400 - {"message": "旧密码不正确"} 或 {"message": "旧密码和新密码不能为空"}
     * 失败: HTTP 401 - 未授权
     */
    public static final String USER_API = "/api/user";

    /**
     * 应用配置接口
     * 
     * 这部分将根据具体业务需求添加相关 API 接口文档
     */
    public static final String CONFIG_API = "/api/config";

    /**
     * 系统健康检查接口
     * 
     * URL: GET /api/health
     * 描述: 检查系统运行状态
     * 响应: HTTP 200 - {"status": "UP", "timestamp": "2023-XX-XX"}
     */
    public static final String HEALTH_API = "/api/health";
}